package com.atguigu.dao.impl;

import com.atguigu.dao.ContainerVolumeMapDao;
import com.atguigu.pojo.ContainerVolumeMap;

import java.util.List;


public class ContainerVolumeMapDaoImpl extends BaseDao implements ContainerVolumeMapDao {

    @Override
    public int addContainerVolumeMap(ContainerVolumeMap containerVolumeMap) {
        System.out.println("ContainerVolumeMapDaoImpl程序在[" + Thread.currentThread().getName() + "]线程中");
        String sql = "insert into t_containerVolumeMap(`id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId`) values(?,?,?,?,?,?,?,?);";
        return update(sql,containerVolumeMap.getId(), containerVolumeMap.getContainerId(),containerVolumeMap.getMasterDir(), containerVolumeMap.getContainerDir(),containerVolumeMap.getSmbStorageConfigId(),
                containerVolumeMap.getNfsStorageConfigId(),containerVolumeMap.getCephStorageConfigId(),containerVolumeMap.getTypeId());
    }

    @Override
    public int deleteContainerVolumeMapById(String id) {
        String sql = "delete from t_containerVolumeMap where id=?";
        return update(sql, id);
    }
    @Override
    public int deleteContainerVolumeMapByContainerId(String containerId){
        String sql = "delete from t_containerVolumeMap where containerId=?";
        return update(sql, containerId);
    }

    @Override
    public int updateContainerVolumeMap(ContainerVolumeMap containerVolumeMap) {
        String sql = "update t_containerVolumeMap set `containerId`=?,`masterDir`=?,`containerDir`=?,`smbStorageConfigId`=?,`nfsStorageConfigId`=?,`cephStorageConfigId`=?,`typeId`=? where id=?";
        return update(sql,containerVolumeMap.getContainerId(),containerVolumeMap.getMasterDir(), containerVolumeMap.getContainerDir(), containerVolumeMap.getSmbStorageConfigId(),
                containerVolumeMap.getNfsStorageConfigId(),containerVolumeMap.getCephStorageConfigId(),containerVolumeMap.getTypeId(), containerVolumeMap.getId());
    }

    @Override
    public ContainerVolumeMap queryContainerVolumeMapById(String id) {
        String sql = "select `id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId` from t_containerVolumeMap where id=?";
        return queryForOne(ContainerVolumeMap.class, sql, id);
    }
    @Override
    public List<ContainerVolumeMap> queryContainerVolumeMapsByName(String containerVolumeMapName) {
        String sql = "select `id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId` from t_containerVolumeMap where locate(?,name)>0";
        return queryForList(ContainerVolumeMap.class, sql, containerVolumeMapName);
    }

    @Override
    public List<ContainerVolumeMap> queryContainerVolumeMapsByServerId(String serverId) {// 查询全部
        String sql = "select `id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId` from t_containerVolumeMap where serverId=?";
        return queryForList(ContainerVolumeMap.class, sql,serverId);
    }
    @Override
    public List<ContainerVolumeMap> queryContainerVolumeMapsByServerIdAndContainerVolumeMapName(String serverId,String containerVolumeMapName){
        String sql = "select `id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId` from t_containerVolumeMap where serverId=? and locate(?,name)>0";
        return queryForList(ContainerVolumeMap.class, sql,serverId,containerVolumeMapName);
    }
    @Override
    public List<ContainerVolumeMap> queryContainerVolumeMaps() {// 查询全部
        String sql = "select `id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId` from t_containerVolumeMap";
        return queryForList(ContainerVolumeMap.class, sql);
    }
    @Override
    public List<ContainerVolumeMap> queryContainerVolumeMapsByContainerId(String containerId){
        String sql = "select `id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId` from t_containerVolumeMap where containerId=?";
        return queryForList(ContainerVolumeMap.class, sql,containerId);
    }
    @Override
    public Integer queryForPageTotalCount() {//查询总条目数,为page分片做准备
        String sql = "select count(*) from t_containerVolumeMap";
        Number containerVolumeMapCount = (Number) queryForSingleValue(sql);//这个语句似乎可以返回任何类型的查询
        //System.out.println(bookCount);
        return containerVolumeMapCount.intValue();
    }

    @Override
    public List<ContainerVolumeMap> queryForPageItems(Integer begin, Integer pageSize) {
        String sql = "select `id`,`containerId`,`masterDir`,`containerDir`,`smbStorageConfigId`,`nfsStorageConfigId`,`cephStorageConfigId`,`typeId` from t_containerVolumeMap limit ?,?";
        return queryForList(ContainerVolumeMap.class, sql, begin, pageSize);//查询数据片段
    }
}


